Displaying large amounts of data (for instance, results of a search query) for interactive view is an increasingly common problem. Many existing solutions display a fixed number of results (or data items) on a single page such that a user may have to scroll or page through hundreds, if not thousands, of result pages in order to get a feel for the scope and breadth of the returned results. Obviously, often a user will not take the time to do this and, accordingly, may leave their search experience dissatisfied.
Further, these types of display systems must function in a heterogeneous environment, integrating data sources with a wide variety of performance characteristics. For instance, in order to provide comprehensive results, these types of display systems may retrieve data from various data sources (e.g., a local hard drive, a shared server, the Internet, etc.), each source varying in its performance characteristics and capacity.
Still further, different types of data items (e.g., text files, emails, meeting requests, photographs, etc.) may have differing ideal presentations. That is, it may be desirable for a photograph to be displayed as a thumbnail and an email displayed as an envelope-like icon such that upon quick glance, the user can get an idea of result type.
Many current systems do not scale well and become unresponsive when displaying large data sets. Others scale to large data sets but do so at the expense of visual richness or display flexibility. Systems often achieve scalability by assuming all data items will be displayed sequentially (none will be hidden) and that all data items will be exactly the same size. Such assumptions are, at best, inaccurate in practical application.